草庐IT

Arduino ESP32

全部标签

STM32 LL库下ADC + DMA多通道连续扫描采集通道错乱问题记录

         cubemx配置ADC+DMA转换后,代码在adc.c中将ADC_REG_InitStruct.DMATransfer属性设置为:        LL_ADC_REG_DMA_TRANSFER_UNLIMITED或者        LL_ADC_REG_DMA_TRANSFER_LIMITED(在MX中配置时只有这两选项),都会在初始化ADC时同时使能DMA。/*ADCinitfunction*/voidMX_ADC_Init(void){/*USERCODEBEGINADC_Init0*//*USERCODEENDADC_Init0*/LL_ADC_InitTypeDefA

【STM32】HAL库——串口中断只接收到两个字符

【STM32】HAL库——串口中断只接收到两个字符一、问题描述二、解决方法三、原因分析一、问题描述环境:STM32CubeMX(6.7.0)+MDK-ARM(V5.36.0.0)+STM32F103C8T6使用XCOM发送字符串(总共8个字符),单片机进行解析为ModBus协议失败,只接收到前两个字节的数据。二、解决方法原串口中断回调函数:voidHAL_UART_RxCpltCallback(UART_HandleTypeDef*huart){if(huart->Instance==USART1)//判断是哪个串口调用回调函数{if(modbus.reflag==1)//有数据包正在处理

以STM32为例,实现按键的短按和长按

以STM32为例,实现按键的短按和长按目录以STM32为例,实现按键的短按和长按1实现原理2实现代码3测试结束语1实现原理简单来说就是通过设置一个定时器来定时扫描几个按键的状态,并分别记录按键按下的持续时间,通过时间的长短就可以判断出是长按还是短按。本文硬件接线图如下:2实现代码1、key.h主要是一些按键引脚以及后面需要使用的变量定义。#ifndef__KEY_H#define__KEY_H #include"sys.h"#defineKEY1_PORTGPIOE#defineKEY1_PINGPIO_Pin_4#defineKEY2_PORTGPIOE#defineKEY2_PINGPIO

STM32环形串口队列程序 大数据串口收发 实时不丢包

STM32环形串口队列程序大数据串口收发 实时不丢包串口程序平常产品开发中编写或移植的程序并亲自测试通过,均为工程文件格式,可直接编译使用。注:毫无基础的请勿拍,程序文件不接受退货。该程序为大数据量吞吐的串口收发例程,中断接收,边收边发,采用大数据环形队列,处理过程超快不丢包,接收buffer可以定义成2K,4K,8K均可。也可以用到其余单片机上标题:基于STM32的环形串口队列程序:实现大数据串口收发并保证实时不丢包摘要:本文介绍了一种基于STM32的环形串口队列程序,该程序能够实现大数据量的串口收发,采用中断接收、边收边发的方式,并采用大数据环形队列来处理数据,保证了处理过程的高效性和数据

stm32毕设分享 单片机 图像分类 智能识别机器人 - 物联网 深度学习 AI

文章目录0前言1**项目背景**2**在ArduinoIDE上安装ESP32-Cam**3**用BLINK测试电路板**4**测试WiFi**5**测试相机**6**运行你的网络服务器**7**水果与蔬菜-图像分类**8**结论**9最后0前言🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是🚩单片机图像分类智能识别机器人-物联网嵌入式AI🥇学长这里给一个题目综合评分(每项满分5分)难度系数:4分

STM32 SPI驱动SD卡发送CMD命令没有返回正确值

       最近调试SD卡的时候遇到了发送CMD命令但没有收到正确回应的问题。先简单叙述一下开发环境,我使用的是STM32CubeMX+MDK5,板子用的是原子哥F407探索者。这次的需求是使用SPI驱动SD卡,并建立FATFS文件系统用于管理卡内数据,另外使能了串口1并重定向了printf到串口以便直接观察。       基本了解SD卡驱动流程后就直接开始实战操作(SD卡的驱动流程、卡的驱动及挂载文件系统的代码都可以在网上找,很容易能够找到,这里就不赘述了),在下载的代码基础上用if语句判断f_mkfs、f_mount和f_open函数是否成功执行,成功返回0,否则返回错误代码。建立工程文

STM32 FreeRTOS 内存问题

1.STM32L151C8T6内存,64Kb的Flash(代码就是烧录在这里面的),16Kb的RAM,程序跑起来之后的内存,相当于我们高考时发的草稿纸,直接影响程序的运行速度,可以用STM32CubeMx软件直接下载数据手册datasheet2.实际使用64KBFlash(ROM),10KBRAM,ROM还没用完了3.编译信息提供的内存具体大小4.搞OLED的时候搞了一个2KB的全局数组,直接导致程序运行不起来,Debug都进不了main主函数了,把数组调小一点,就可以正常运行起来,所以怀疑是内存溢出了#defineOLED_SCREEN_PAGE8//page[7-0]#defineOLED

STM32CubeMX教程26 FatFs 文件系统 - W25Q128读写

1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)keilµVision5IDE(MDK-Arm)ST-LINK/V2驱动野火DAP仿真器XCOMV2.6串口助手2、实验目标使用STM32CubeMX软件配置STM32F407开发板使用FatFs中间件通过SPI通信协议对W25Q128芯片进行读写等操作3、实验流程3.0、前提知识关于STM32F407使用SPI通信协议对W25Q128FLASH芯片读写等操作涉及的SPI通信协议及W25Q128芯片相关知识请读者阅读STM32CubeMX教程20SPI-W25Q128驱动实验,本实

STM32堆栈溢出问题及解决方法

堆栈溢出是嵌入式系统开发中常见的问题之一,特别是在使用STM32微控制器时。堆栈溢出会导致程序崩溃、数据损坏甚至系统死机。本文将详细介绍STM32堆栈溢出的原因,并提供一些解决方法。堆栈溢出原因堆栈是用于存储函数调用和局部变量的内存区域,它是一种先进后出的数据结构。当函数调用时,函数的参数、局部变量和返回地址等信息都会被保存到堆栈中。如果函数嵌套层级过深或者局部变量占用的内存空间过大,堆栈的大小可能不足以容纳这些信息,从而导致堆栈溢出。堆栈溢出的影响堆栈溢出可能导致以下问题:程序崩溃:当堆栈溢出时,程序无法正确恢复函数调用和局部变量的状态,导致程序崩溃。数据损坏:堆栈溢出可能导致局部变量的值被

一步一步搭建S32K14x的AutoSar项目----MCAL之MCU模块

本章节主要介绍MCU模块相关内容一、S32K144时钟树介绍:二、MCU模块介绍:三、MCU模块配置:一、S32K144时钟树介绍:1-1、时钟对于任何一款微控制器是很重要的,所以我们首先要了解S32K144的时钟树,才能为后续的MCAL中MCU模块配置做好准备,废话不多说,先上一张图片,聊了解下对应芯片手册的第27章ClockDistribution。1、SOSC就是连接外部的高速时钟,我们一般情况下会优先选择它,精准度会很高,稳定下也很好,我们一般用8M或者16M的晶振,内部的时钟容易因为温度产生应先。2、FastIRC:内部高速时钟3、SlowIRC:内部低速时钟4、LPO:内部低功耗时